﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Code;
using E2_WEBSITE.Code.Admin;
using E2_WEBSITE.Code;

public partial class cp_admin_user_detail : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Page.Request["UserId"] == null)
        {
            if (Session["UserID"] != null)
            {
                Page.Response.Redirect(string.Format("~/cp/admin/user/detail.aspx?UserId={0}", Convert.ToInt32(Session["UserID"])));
            }
        }
        if (Session["UserID"] != null)
        {
            if (Page.Request["UserId"].ToString() == Session["UserID"].ToString())
            {
                // khong cho tu xoa tai khoan dang dang nhap
                btnDelete.Visible = false;
            }
        }
    }

    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        if (Session["Authentication"] == null || Convert.ToInt32(Session["Authentication"]) != 0)
        {
            WebMsgBox.Show("Bạn phải là admin để có thể sử dụng chức năng này.");
            return;
        }

        if (detailUser.Rows.Count > 0)
        {
            int uid = int.Parse(Page.Request["UserId"]);
            try
            {
                UserController controller = new UserController();
                UserInfo user = controller.GetUserInfo(uid);
                // lay thong tin
                int score = 0;
                if (!(detailUser.Rows[0].FindControl("tbScore") as TextBox).Text.Equals(string.Empty))
                {
                    score = int.Parse((detailUser.Rows[0].FindControl("tbScore") as TextBox).Text);
                }
                user.Score = score;
                user.Type = int.Parse((detailUser.Rows[0].FindControl("ddlType") as DropDownList).SelectedValue);
                if (controller.UpdateUser(uid, user))
                {
                    WebMsgBox.Show("Cập nhật người dùng thành công.");
                }
            }
            catch (Exception)
            {
                Response.Redirect(Utilities.ErrorPagePath);
                throw;
            }
        }
    }

    protected void btnDelete_Click(object sender, EventArgs e)
    {
        if (Session["Authentication"] == null || Convert.ToInt32(Session["Authentication"]) != 0)
        {
            WebMsgBox.Show("Bạn phải là admin để có thể sử dụng chức năng này.");
            return;
        }

        if (detailUser.Rows.Count > 0)
        {
            int uid = int.Parse(Page.Request["UserId"]);
            try
            {
                UserController controller = new UserController();
                if (controller.DeleteUser(uid))
                {
                    Page.Response.Redirect("~/cp/admin/user/view.aspx");
                }
                else
                {
                    WebMsgBox.Show("Không thể xóa tài khoản này, có thể do ràng buộc từ CSDL.");
                }
            }
            catch (Exception)
            {
                Response.Redirect(Utilities.ErrorPagePath);
                throw;
            }
        }
    }

    protected void btnResetPassword_Click(object sender, EventArgs e)
    {
        if (Session["Authentication"] == null || Convert.ToInt32(Session["Authentication"]) != 0)
        {
            WebMsgBox.Show("Bạn phải là admin để có thể sử dụng chức năng này.");
            return;
        }
        if (detailUser.Rows.Count > 0)
        {
            int uid = int.Parse(Page.Request["UserId"]);
            try
            {
                UserController controller = new UserController();
                string hashedPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(Utilities.DefaultPassword, "sha1");

                if (!controller.ResetPassword(uid, hashedPassword).Equals(string.Empty))
                {
                    WebMsgBox.Show("Mật khẩu đã được reset.");
                }
            }
            catch (Exception)
            {
                Response.Redirect(Utilities.ErrorPagePath);
                throw;
            }
        }
    }
}
